---
title: Nucleu
description: Configurația de bază a Ultracite cu reguli de lint independente de framework.
---

Configurația de bază Ultracite oferă un set cuprinzător de reguli de lint și setări de formatare independente de framework. Aceasta este fundația pe care se bazează toate celelalte configurații specifice framework-urilor.

## Instalare

Configurația de bază este inclusă automat când rulezi:

```bash
npx ultracite init
```

Sau o poți adăuga manual în `biome.jsonc`:

```jsonc title="biome.jsonc"
{
  "extends": ["ultracite/core"]
}
```

## Prezentare generală

Configurația de bază include sute de reguli stricte de lint care acoperă:

- **Accesibilitate (a11y)**: Aplică atribute ARIA, HTML semantic și navigare de la tastatură
- **Complexitate**: Reduce complexitatea cognitivă și impune bune practici
- **Corectitudine**: Previne erorile comune și impune siguranța tipurilor
- **Performanță**: Optimizează codul pentru performanță la rulare
- **Securitate**: Previne vulnerabilitățile de securitate
- **Stil**: Impune un stil de cod consecvent
- **Suspecte**: Depistează pattern-uri suspecte care ar putea semnala bug-uri

## Setări formatter

- **Indentare**: 2 spații
- **Lățime linie**: 80 de caractere
- **Final de linie**: LF (stil Unix)
- **Punct și virgulă**: Always required
- **Ghilimele**: Double quotes pentru JavaScript/TypeScript și JSON
- **Virgule la sfârșit**: Stil ES5 (array-uri/obiecte pe mai multe linii)
- **Paranteze pentru funcțiile arrow**: Includeți întotdeauna paranteze

## Funcționalități cheie

### Rigorile TypeScript

Configurația de bază activează verificările stricte ale TypeScript:

- Descurajează utilizarea lui `any` (`noExplicitAny: error`)
- Cere tratarea valorilor `null/undefined`
- Preferă tipuri explicite în anumite situații
- Impune siguranța tipurilor în întregul cod

### Echivalente recomandate ESLint

Reguli comune de bune practici sunt incluse:

- Fără variabile neutilizate (`noUnusedVariables: error`)
- Fără importuri neutilizate (`noUnusedImports: error`)
- Fără `eval` explicit (`noGlobalEval: error`)
- Fără prototype pollution (`noPrototypeBuiltins: error`)

### Accesibilitate implicită

Reguli echivalente standardelor de accesibilitate:

- Atributele ARIA trebuie să fie valide
- Elemente HTML semantice preferate
- Suport pentru navigare de la tastatură necesar
- Text alternativ pentru imagini necesar

### Suport Node.js

Tratament specific de mediu:

- Recunoaște globale Node.js (`module`, `process`)
- Impune protocolul `node:` pentru modulele încorporate
- Suportă atât CommonJS, cât și ESM

## Referință completă a regulilor

### Accesibilitate (a11y)

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noAccessKey` | `error` | Impune ca atributul `accessKey` să nu fie folosit pe niciun element HTML. |
| `noAriaHiddenOnFocusable` | `error` | Impune ca `aria-hidden="true"` să nu fie setat pe elemente focusabile. |
| `noAriaUnsupportedElements` | `error` | Impune ca elementele care nu acceptă roluri, stări și proprietăți ARIA să nu aibă aceste atribute. |
| `noAutofocus` | `off` | Impune ca prop-ul `autoFocus` să nu fie folosit pe elemente. |
| `noDistractingElements` | `error` | Impune ca elementele care distrag atenția să nu fie folosite. |
| `noHeaderScope` | `error` | Prop-ul scope ar trebui folosit doar pe elementele `<th>`. |
| `noInteractiveElementToNoninteractiveRole` | `error` | Impune ca rolurile ARIA non-interactive să nu fie atribuite elementelor HTML interactive. |
| `noLabelWithoutControl` | `error` | Impune ca un element label sau componentă să aibă un text de etichetă și un input asociat. |
| `noNoninteractiveElementInteractions` | `error` | Interzice folosirea handler-elor de evenimente pe elemente non-interactive. |
| `noNoninteractiveElementToInteractiveRole` | `error` | Impune ca rolurile ARIA interactive să nu fie atribuite elementelor HTML non-interactive. |
| `noNoninteractiveTabindex` | `error` | Impune ca `tabIndex` să nu fie atribuit elementelor HTML non-interactive. |
| `noPositiveTabindex` | `error` | Previne utilizarea numerelor pozitive pe proprietatea `tabIndex`. |
| `noRedundantAlt` | `error` | Impune ca prop-ul alt al imaginii să nu conțină cuvintele `image`, `picture`, sau `photo`. |
| `noRedundantRoles` | `error` | Impune ca proprietatea role explicită să nu fie aceeași cu rolul implicit/implicit pe un element. |
| `noStaticElementInteractions` | `error` | Impune ca elementele statice, vizibile (de ex. `<div>`) cu handler-e de click să folosească atributul role valid. |
| `noSvgWithoutTitle` | `error` | Impune utilizarea elementului title pentru elementul `svg`. |
| `useAltText` | `error` | Impune ca toate elementele care necesită text alternativ să ofere informații semnificative utilizatorului final. |
| `useAnchorContent` | `error` | Impune ca ancorele să aibă conținut și ca acel conținut să fie accesibil cititoarelor de ecran. |
| `useAriaActivedescendantWithTabindex` | `error` | Impune ca `tabIndex` să fie atribuit elementelor HTML non-interactive care folosesc `aria-activedescendant`. |
| `useAriaPropsForRole` | `error` | Impune ca elementele cu roluri ARIA să aibă toate atributele ARIA necesare pentru acel rol. |
| `useAriaPropsSupportedByRole` | `error` | Impune ca proprietățile ARIA să fie valide pentru rolurile suportate de element. |
| `useButtonType` | `error` | Impune utilizarea atributului `type` pentru elementul button. |
| `useFocusableInteractive` | `error` | Elementele cu rol interactiv și handler-e de interacțiune trebuie să fie focusabile. |
| `useHeadingContent` | `error` | Impune ca elementele de titlu (`h1`, `h2`, etc.) să aibă conținut și ca acesta să fie accesibil cititoarelor de ecran. |
| `useHtmlLang` | `error` | Impune ca elementul `html` să aibă atributul `lang`. |
| `useIframeTitle` | `error` | Impune utilizarea atributului title pentru elementul iframe. |
| `useKeyWithClickEvents` | `error` | Impune ca `onClick` să fie însoțit de cel puțin unul dintre: `onKeyUp`, `onKeyDown`, `onKeyPress`. |
| `useKeyWithMouseEvents` | `error` | Impune ca `onMouseOver` / `onMouseOut` să fie însoțite de `onFocus` / `onBlur`. |
| `useMediaCaption` | `error` | Impune ca elementele audio și video să aibă o pistă pentru subtitrări. |
| `useSemanticElements` | `error` | Detectează utilizarea atributelor role în elemente JSX și sugerează folosirea elementelor semantice în schimb. |
| `useValidAnchor` | `error` | Impune ca toate ancorele să fie valide și să fie elemente navigabile. |
| `useValidAriaProps` | `error` | Se asigură că proprietățile ARIA `aria-*` sunt toate valide. |
| `useValidAriaRole` | `error` | Elementele cu roluri ARIA trebuie să folosească un rol ARIA valid, non-abstract. |
| `useValidAriaValues` | `error` | Impune ca valorile stărilor și proprietăților ARIA să fie valide. |
| `useValidAutocomplete` | `error` | Folosește valori valide pentru atributul autocomplete pe elementele input. |
| `useValidLang` | `error` | Asigură că valoarea transmisă atributului `lang` este un cod ISO corect pentru limbă și/sau țară. |
| `useGenericFontNames` | `error` | Interzice lipsa cuvântului cheie pentru familia generică în proprietățile de font (CSS). |

### Complexitate

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noAdjacentSpacesInRegex` | `error` | Interzice utilizarea neclară a caracterelor spațiu consecutive în literali regex. |
| `noArguments` | `error` | Interzice utilizarea `arguments`. |
| `noBannedTypes` | `error` | Interzice alias-urile de tip primitiv și tipurile înșelătoare. |
| `noCommaOperator` | `error` | Interzice operatorul virgulă. |
| `noEmptyTypeParameters` | `error` | Interzice parametrii de tip goi în alias-uri de tip și interfețe. |
| `noExcessiveCognitiveComplexity` | `error` | Interzice funcțiile care depășesc un anumit scor de Complexitate Cognitivă. |
| `noExcessiveLinesPerFunction` | `off` | Restricționează numărul de linii de cod într-o funcție. |
| `noExcessiveNestedTestSuites` | `error` | Această regulă impune o adâncime maximă pentru `describe()` imbricate în fișierele de test. |
| `noExtraBooleanCast` | `error` | Interzice conversiile boolean inutile. |
| `noFlatMapIdentity` | `error` | Interzice utilizarea callback-ului inutil în `flatMap`. |
| `noForEach` | `error` | Preferă instrucțiunea `for...of` în locul `Array.forEach`. |
| `noImplicitCoercions` | `off` | Interzice conversiile scurte de tip. |
| `noImportantStyles` | `off` | Interzice utilizarea stilului `!important` (CSS). |
| `noStaticOnlyClass` | `error` | Raportează când o clasă nu are membri non-statici. |
| `noThisInStatic` | `error` | Interzice `this` și `super` în contexte statice. |
| `noUselessCatch` | `error` | Interzice clauzele catch inutile. |
| `noUselessConstructor` | `error` | Interzice constructorii inutili. |
| `noUselessContinue` | `error` | Evită folosirea `continue` inutile. |
| `noUselessEmptyExport` | `error` | Interzice exporturile goale care nu schimbă nimic într-un fișier modul. |
| `noUselessEscapeInRegex` | `error` | Interzice secvențele de escape inutile în literalii expresiilor regulate. |
| `noUselessFragments` | `error` | Interzice fragmentele inutile. |
| `noUselessLabel` | `error` | Interzice label-urile inutile. |
| `noUselessLoneBlockStatements` | `error` | Interzice blocurile imbricate inutile. |
| `noUselessRename` | `error` | Interzice redenumirea importurilor, exporturilor și a atribuțiilor destructurate la același nume. |
| `noUselessStringConcat` | `error` | Interzice concatenarea inutilă a literelor de tip string sau template literalelor. |
| `noUselessStringRaw` | `error` | Interzice `String.raw` inutil în template string-uri fără secvențe de escape. |
| `noUselessSwitchCase` | `error` | Interzice cazurile inutile în instrucțiunile switch. |
| `noUselessTernary` | `error` | Interzice operatorii ternari când există alternative mai simple. |
| `noUselessThisAlias` | `error` | Interzice aliasing-ul inutil al lui `this`. |
| `noUselessTypeConstraint` | `error` | Interzice folosirea `any` sau `unknown` ca restricție de tip. |
| `noUselessUndefinedInitialization` | `error` | Interzice inițializarea variabilelor cu `undefined`. |
| `noVoid` | `error` | Interzice utilizarea operatorilor `void`, care nu sunt familiari ca operator. |
| `useArrowFunction` | `error` | Folosește funcții arrow în locul expresiilor funcție. |
| `useDateNow` | `error` | Folosește `Date.now()` pentru a obține numărul de milisecunde de la Epoca Unix. |
| `useFlatMap` | `error` | Promovează utilizarea `.flatMap()` când `map().flat()` sunt folosite împreună. |
| `useIndexOf` | `error` | Preferă `Array#{indexOf,lastIndexOf}()` față de `Array#{findIndex,findLastIndex}()` când cauți indexul unui element. |
| `useLiteralKeys` | `error` | Impune utilizarea accesului literal la proprietăți în locul accesului computat. |
| `useNumericLiterals` | `error` | Interzice `parseInt()` și `Number.parseInt()` în favoarea literaliilor binari, octal și hexazecimali. |
| `useOptionalChain` | `error` | Impune folosirea lanțului opțional concis în locul expresiilor logice înlănțuite. |
| `useRegexLiterals` | `error` | Impune utilizarea literaliilor expresiilor regulate în locul constructorului `RegExp` când este posibil. |
| `useSimpleNumberKeys` | `error` | Interzice numele membrilor obiect literal numeric care nu sunt baza 10 sau folosesc underscore ca separator. |
| `useSimplifiedLogicExpression` | `error` | Elimină termeni redundanți din expresiile logice. |
| `useWhile` | `error` | Impune utilizarea buclei while în locul for când expresiile initializer și update nu sunt necesare. |

### Corectitudine

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noConstAssign` | `error` | Previne re-atribuirea variabilelor declarate cu `const`. |
| `noConstantCondition` | `error` | Interzice expresiile constante în condiții. |
| `noConstantMathMinMaxClamp` | `error` | Interzice utilizarea lui `Math.min` și `Math.max` pentru a clampa o valoare atunci când rezultatul e constant. |
| `noConstructorReturn` | `error` | Interzice returnarea unei valori dintr-un constructor. |
| `noEmptyCharacterClassInRegex` | `error` | Interzice clase de caractere goale în literalii expresiilor regulate. |
| `noEmptyPattern` | `error` | Interzice pattern-urile de destructurare goale. |
| `noGlobalDirnameFilename` | `error` | Interzice utilizarea `__dirname` și `__filename` în scope global. |
| `noGlobalObjectCalls` | `error` | Interzice apelarea proprietăților obiectului global ca funcții. |
| `noInnerDeclarations` | `error` | Interzice declarațiile de funcții și `var` care sunt accesibile în afara blocului. |
| `noInvalidBuiltinInstantiation` | `error` | Asigură că builtin-urile sunt instantiate corect. |
| `noInvalidConstructorSuper` | `error` | Previne utilizarea incorectă a `super()` în interiorul claselor. |
| `noInvalidDirectionInLinearGradient` | `error` | Interzice valori de direcție non-standard pentru funcțiile linear-gradient (CSS). |
| `noInvalidGridAreas` | `error` | Interzice zone denumite invalide în Grid Layouts (CSS). |
| `noInvalidPositionAtImportRule` | `error` | Interzice utilizarea regulii `@import` în poziții invalide (CSS). |
| `noInvalidUseBeforeDeclaration` | `error` | Interzice utilizarea variabilelor și parametrilor de funcție înainte de declarația lor. |
| `noMissingVarFunction` | `error` | Interzice lipsa funcției `var` pentru variabilele CSS (CSS). |
| `noNodejsModules` | `off` | Interzice utilizarea modulelor builtin Node.js. |
| `noNonoctalDecimalEscape` | `error` | Interzice secvențele de escape `\8` și `\9` în literalii string. |
| `noPrecisionLoss` | `error` | Interzice numere literale care pierd precizie. |
| `noPrivateImports` | `off` | Restricționează importurile de exporturi private. |
| `noProcessGlobal` | `off` | Interzice utilizarea globalului `process`. |
| `noRestrictedElements` | `error` | Interzice utilizarea elementelor configurate. |
| `noSelfAssign` | `error` | Interzice atribuiri unde ambele părți sunt exact la fel. |
| `noSetterReturn` | `error` | Interzice returnarea unei valori dintr-un setter. |
| `noStringCaseMismatch` | `error` | Interzice compararea expresiilor care modifică cazul string-ului cu valori neconforme. |
| `noSwitchDeclarations` | `error` | Interzice declarațiile lexicale în clauzele switch. |
| `noUndeclaredDependencies` | `off` | Interzice utilizarea dependențelor care nu sunt specificate în `package.json`. |
| `noUndeclaredVariables` | `error` | Previne utilizarea variabilelor care nu au fost declarate în document. |
| `noUnknownFunction` | `error` | Interzice funcțiile CSS necunoscute (CSS). |
| `noUnknownMediaFeatureName` | `error` | Interzice numele necunoscute de media feature (CSS). |
| `noUnknownProperty` | `error` | Interzice proprietățile necunoscute (CSS). |
| `noUnknownPseudoClass` | `error` | Interzice selectorii de pseudo-clasă necunoscuți (CSS). |
| `noUnknownPseudoElement` | `error` | Interzice selectorii de pseudo-element necunoscuți (CSS). |
| `noUnknownTypeSelector` | `error` | Interzice selectorii de tip necunoscuți (CSS). |
| `noUnknownUnit` | `error` | Interzice unitățile CSS necunoscute (CSS). |
| `noUnmatchableAnbSelector` | `error` | Interzice selectorii An+B care nu pot fi potriviți (CSS). |
| `noUnreachable` | `error` | Interzice codul inaccesibil. |
| `noUnreachableSuper` | `error` | Asigură că `super()` este apelat exact o dată pe fiecare cale de execuție într-un constructor înainte de a se accesa `this`. |
| `noUnsafeFinally` | `error` | Interzice instrucțiunile de control al fluxului în blocurile finally. |
| `noUnsafeOptionalChaining` | `error` | Interzice utilizarea optional chaining în contexte unde valoarea `undefined` nu este permisă. |
| `noUnusedFunctionParameters` | `error` | Interzice parametrii de funcție neutilizați. |
| `noUnusedImports` | `error` (safe fix override) | Interzice importurile neutilizate. |
| `noUnusedLabels` | `error` | Interzice label-urile neutilizate. |
| `noUnusedPrivateClassMembers` | `error` | Interzice membrii privați ai clasei neutilizați. |
| `noUnusedVariables` | `error` | Interzice variabilele neutilizate. |
| `noVoidTypeReturn` | `error` | Interzice returnarea unei valori dintr-o funcție cu tipul de return `void`. |
| `useGraphqlNamedOperations` | `error` | Impune specificarea numelui operațiunilor GraphQL. |
| `useImageSize` | `error` | Impune ca elementele `<img>` să aibă atât atributele width cât și height. |
| `useImportExtensions` | `off` | Impune extensii de fișier pentru importurile relative. |
| `useIsNan` | `error` | Cere apeluri la `isNaN()` când se verifică NaN. |
| `useJsonImportAttributes` | `off` | Impune utilizarea cu `{ type: "json" }` pentru importurile de module JSON. |
| `useParseIntRadix` | `error` | Impune utilizarea consistentă a argumentului radix la `parseInt()`. |
| `useSingleJsDocAsterisk` | `error` | Impune liniilor de comentariu JSDoc să înceapă cu un singur asterisc, cu excepția primului. |
| `useUniqueElementIds` | `off` | Previne utilizarea atributului id cu literal static pe elemente. |
| `useValidForDirection` | `error` | Impune ca clauza de update din bucla `for` să deplaseze contorul în direcția corectă. |
| `useValidTypeof` | `error` | Această regulă verifică ca rezultatul unei expresii `typeof` să fie comparat cu o valoare validă. |
| `useYield` | `error` | Cere ca funcțiile generator să conțină `yield`. |

### Nursery

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noContinue` | `off` | Interzice instrucțiunile continue. |
| `noDeprecatedImports` | `off` | Restricționează importurile de exporturi deprecate. |
| `noDuplicateDependencies` | `error` | Previne listarea dependențelor duplicate. |
| `noDuplicatedSpreadProps` | `error` | Interzice proprietățile duplicate în spread props. |
| `noEmptySource` | `error` | Interzice fișierele sursă goale. |
| `noEqualsToNull` | `error` | Interzice folosirea `==` sau `!=` pentru compararea cu `null`. Folosiți `===` sau `!==` în schimb. |
| `noFloatingPromises` | `off` | Cere ca expresiile de tip Promise să fie tratate corespunzător. |
| `noForIn` | `off` | Interzice iterarea folosind un for-in loop. |
| `noImportCycles` | `off` | Previne ciclurile de import. |
| `noIncrementDecrement` | `error` | Interzice utilizarea operatorilor `++` și `--` (cu excepția părții afterthought dintr-un for loop). |
| `noJsxLiterals` | `off` | Interzice literalele string în interiorul elementelor JSX. |
| `noLeakedRender` | `error` | Previne valorile scăpate problematic în JSX (de ex., 0 sau NaN) din a fi rendate. |
| `noMisusedPromises` | `off` | Interzice utilizarea Promises în locuri unde aproape sigur este o greșeală. |
| `noMultiStr` | `error` | Interzice string-urile pe mai multe linii folosind backslash pentru continuare. |
| `noParametersOnlyUsedInRecursion` | `error` | Interzice parametrii care sunt folosiți doar în apeluri recursive. |
| `noProto` | `error` | Interzice utilizarea proprietății `__proto__`. |
| `noShadow` | `error` | Interzice declarațiile de variabile care ascund variabile declarate în scope-ul exterior. |
| `noSyncScripts` | `error` | Previnde utilizarea scripturilor sincrone. |
| `noTernary` | `off` | Interzice operatorii ternari. |
| `noUnnecessaryConditions` | `off` | Interzice condițiile bazate pe tip care sunt redundante și pot fi determinate static. |
| `noUnresolvedImports` | `off` | Avertizează la importarea de exporturi inexistente. |
| `noUnusedExpressions` | `error` | Interzice expresiile statement care nu sunt nici apeluri de funcții, nici atribuiri. |
| `noUselessCatchBinding` | `off` | Interzice binding-urile `catch` neutilizate. |
| `noUselessUndefined` | `error` | Interzice utilizarea `undefined` inutil. |
| `useArraySortCompare` | `off` | Impune utilizarea unei funcții compare în `Array.prototype.sort()`. |
| `useConsistentArrowReturn` | `error` | Impune corpurile consistente ale funcțiilor arrow. |
| `useConsistentGraphqlDescriptions` | `error` | Cere ca toate descrierile să urmeze același stil (block sau inline) în fișierele GraphQL. |
| `useDeprecatedDate` | `error` | Cere ca directiva `@deprecated` să specifice o dată de ștergere. |
| `useExhaustiveSwitchCases` | `off` | Cere ca instrucțiunile switch-case să fie exhaustive. |
| `useExplicitType` | `off` | Impune tipuri în funcții, metode, variabile și parametri. |
| `useFind` | `error` | Impune utilizarea `Array.prototype.find()` în locul `Array.prototype.filter()` urmat de `[0]` când se caută un singur rezultat. |
| `useMaxParams` | `error` | Impune un număr maxim de parametri în definițiile de funcții. |
| `useSortedClasses` | `error` (safe fix override) | Impune sortarea claselor utilitare CSS. |
| `useSpread` | `error` | Impune utilizarea operatorului spread în locul `Function.prototype.apply()`. |
| `useUniqueGraphqlOperationName` | `error` | Asigură că toate operațiunile GraphQL dintr-un document au nume unice. |

### Performanță

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noAccumulatingSpread` | `error` | Interzice utilizarea sintaxei spread (`...`) pe acumulatoare. |
| `noAwaitInLoops` | `off` | Interzice `await` în interiorul buclelor. |
| `noBarrelFile` | `error` | Interzice utilizarea fișierelor barrel. |
| `noDelete` | `error` | Interzice utilizarea operatorului `delete`. |
| `noDynamicNamespaceImportAccess` | `error` | Interzice accesarea dinamică a importurilor de tip namespace. |
| `noNamespaceImport` | `error` | Interzice utilizarea importurilor namespace. |
| `noReExportAll` | `off` | Evită re-exportul tuturor exporturilor. |
| `noUnwantedPolyfillio` | `error` | Previne polyfill-urile duplicate de la Polyfill.io. |
| `useGoogleFontPreconnect` | `error` | Asigură utilizarea atributului `preconnect` când se folosesc Google Fonts. |
| `useTopLevelRegex` | `error` | Cere declararea literaliilor regex la nivel top-level. |

### Securitate

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noBlankTarget` | `error` | Interzice atributul `target="_blank"` fără `rel="noopener"`. |
| `noDangerouslySetInnerHtml` | `error` | Previne utilizarea prop-urilor JSX periculoase. |
| `noDangerouslySetInnerHtmlWithChildren` | `error` | Raportează când un element DOM sau o componentă folosește atât children cât și prop-ul `dangerouslySetInnerHTML`. |
| `noGlobalEval` | `error` | Interzice utilizarea globală a `eval()`. |

### Stil

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noCommonJs` | `off` | Interzice utilizarea sistemului de module Common JS în favoarea importurilor ESM. |
| `noDefaultExport` | `off` | Interzice exporturile default. |
| `noDoneCallback` | `error` | Interzice folosirea unui callback în testele și hook-urile asincrone. |
| `noEnum` | `error` | Interzice enum-urile TypeScript. |
| `noExportedImports` | `error` | Interzice exportarea unei variabile importate. |
| `noImplicitBoolean` | `off` | Interzice valorile booleene implicite adevărate pe atributele JSX booleene. |
| `noInferrableTypes` | `error` | Interzice adnotările de tip pentru variabile, parametri și proprietăți de clasă inițializate cu o expresie literală. |
| `noMagicNumbers` | `off` | Raportează utilizarea „numerelor magice” — numere folosite direct în loc să fie atribuite unor constante denumite. |
| `noNamespace` | `error` | Interzice utilizarea namespace-urilor TypeScript. |
| `noNegationElse` | `error` | Interzice negația în condiția unui if dacă are o clauză else. |
| `noNestedTernary` | `error` | Interzice expresiile ternare imbricate. |
| `noNonNullAssertion` | `error` | Interzice non-null assertions folosind operatorul postfix `!`. |
| `noParameterAssign` | `error` | Interzice reatribuirea parametrilor funcțiilor. |
| `noParameterProperties` | `error` | Interzice utilizarea proprietăților parametrilor în constructorii de clasă. |
| `noProcessEnv` | `off` | Interzice utilizarea `process.env`. |
| `noRestrictedGlobals` | `error` | Această regulă îți permite să specifici numele variabilelor globale pe care nu vrei să le folosești în aplicație. |
| `noRestrictedImports` | `error` | Interzice modulele specificate când sunt încărcate prin import sau require. |
| `noRestrictedTypes` | `error` | Interzice tipurile definite de utilizator. |
| `noShoutyConstants` | `error` | Interzice utilizarea constantelor al căror valoare este versiunea cu majuscule a numelui. |
| `noSubstr` | `error` | Impune utilizarea `String.slice()` în locul `String.substr()` și `String.substring()`. |
| `noUnusedTemplateLiteral` | `error` | Interzice template literal-urile dacă interpolarea și tratarea caracterelor speciale nu sunt necesare. |
| `noUselessElse` | `error` | Interzice blocul else când blocul if se termină anticipat. |
| `noYodaExpression` | `error` | Interzice utilizarea expresiilor Yoda. |
| `useArrayLiterals` | `error` | Interzice constructorii `Array`. |
| `useAsConstAssertion` | `error` | Impune folosirea `as const` în locul tipurilor literale și a adnotațiilor de tip. |
| `useAtIndex` | `error` | Folosește `at()` în locul accesului prin index integer. |
| `useBlockStatements` | `error` | Necesită respectarea convențiilor cu acolade. |
| `useCollapsedElseIf` | `error` | Impune folosirea `else if` în locul `if`-urilor imbricate în clauzele `else`. |
| `useCollapsedIf` | `error` | Impune folosirea unui singur `if` în locul if-urilor imbricate. |
| `useComponentExportOnlyModules` | `off` | Impune declararea componentelor doar în module care exportă exclusiv componente React. |
| `useConsistentArrayType` | `error` | Cere utilizarea consistentă a fie `T[]`, fie `Array<T>`. |
| `useConsistentBuiltinInstantiation` | `error` | Impune folosirea lui `new` pentru toate builtin-urile, cu excepția `String`, `Number` și `Boolean`. |
| `useConsistentCurlyBraces` | `off` | Această regulă impune utilizarea consistentă a acoladelor în atributele JSX și copiii JSX. |
| `useConsistentMemberAccessibility` | `error` | Cere modificatoare de accesibilitate consistente pentru proprietățile și metodele clasei. |
| `useConsistentObjectDefinitions` | `error` | Cere declarații consistente pentru obiecte literale. |
| `useConst` | `error` | Cere declarații const pentru variabilele care sunt asignate o singură dată. |
| `useDefaultParameterLast` | `error` | Impune ca parametrii funcțiilor cu valoare implicită și cei opționali să fie ultimii. |
| `useDefaultSwitchClause` | `error` | Cere clauza `default` în instrucțiunile switch. |
| `useDeprecatedReason` | `error` | Cere specificarea argumentului reason la utilizarea directivei `@deprecated`. |
| `useEnumInitializers` | `error` | Cere ca fiecare membru enum să aibă valoarea explicit inițializată. |
| `useExplicitLengthCheck` | `off` | Impune compararea explicită a proprietăților `length`, `size`, `byteLength` sau `byteOffset`. |
| `useExponentiationOperator` | `error` | Interzice utilizarea `Math.pow` în favoarea operatorului `**`. |
| `useExportType` | `error` | Promovează utilizarea `export type` pentru tipuri. |
| `useExportsLast` | `off` | Cere ca toate exporturile să fie declarate după toate instrucțiunile non-export. |
| `useFilenamingConvention` | `error` | Impune convenții de denumire pentru fișiere JavaScript și TypeScript (kebab-case, ASCII). |
| `useForOf` | `error` | Această regulă recomandă o buclă for-of când într-un for loop, indexul este folosit pentru a extrage un element din array-ul iterat. |
| `useFragmentSyntax` | `error` | Această regulă impune utilizarea `<>...</>` în locul `<Fragment>...</Fragment>`. |
| `useGraphqlNamingConvention` | `error` | Verifică că toate valorile enum sunt capitalizate. |
| `useGroupedAccessorPairs` | `error` | Impune ca getter-ele și setter-ele pentru aceeași proprietate să fie adiacente în definițiile de clase și obiecte. |
| `useImportType` | `error` | Promovează utilizarea `import type` pentru tipuri. |
| `useLiteralEnumMembers` | `error` | Cere ca toate membrii enum să fie valori literale. |
| `useNamingConvention` | `off` | Regulă pentru convenția de denumire (dezactivată). |
| `useNodeAssertStrict` | `error` | Promovează utilizarea `node:assert/strict` în locul `node:assert`. |
| `useNodejsImportProtocol` | `error` | Impune utilizarea protocolului `node:` pentru modulele builtin Node.js. |
| `useNumberNamespace` | `error` | Folosește proprietățile `Number` în locul celor globale. |
| `useNumericSeparators` | `error` | Impune utilizarea separatoarelor numerice în literalii numerici. |
| `useObjectSpread` | `error` | Preferă object spread în locul `Object.assign()` la construirea de obiecte noi. |
| `useReadonlyClassProperties` | `error` | Impune marcarea membrilor ca readonly dacă nu sunt modificați în afara constructorului. |
| `useSelfClosingElements` | `error` | Previne tag-uri de închidere suplimentare pentru componente fără children. |
| `useShorthandAssign` | `error` | Cere utilizarea sintaxei scurte de atribuire acolo unde e posibil. |
| `useShorthandFunctionType` | `error` | Impune folosirea tipurilor funcție în locul tipurilor obiect cu semnături call. |
| `useSingleVarDeclarator` | `off` | Interzice declarațiile multiple de variabile în aceeași instrucțiune. |
| `useSymbolDescription` | `error` | Cere un parametru de descriere pentru `Symbol()`. |
| `useTemplate` | `error` | Preferă template literal-urile în locul concatenării string-urilor. |
| `useThrowNewError` | `error` | Cere utilizarea `new` când se aruncă o eroare. |
| `useThrowOnlyError` | `error` | Interzice aruncarea de valori non-`Error`. |
| `useTrimStartEnd` | `error` | Impune utilizarea `String.trimStart()` și `String.trimEnd()` în locul `String.trimLeft()` și `String.trimRight()`. |
| `useUnifiedTypeSignatures` | `error` | Interzice semnăturile overload care pot fi unificate într-o singură semnătură. |
| `noDescendingSpecificity` | `error` | Interzice ca un selector cu specificitate mai mică să vină după unul cu specificitate mai mare (CSS). |
| `noValueAtRule` | `error` | Interzice folosirea regulii `@value` în modulele css (CSS). |

### Suspecte

| Regulă | Setare | Descriere |
|--------|--------|-----------|
| `noAlert` | `error` | Interzice utilizarea `alert`, `confirm` și `prompt`. |
| `noApproximativeNumericConstant` | `error` | Folosește constante standard în locul literalelor aproximative. |
| `noAssignInExpressions` | `error` | Interzice atribuțiile în expresii. |
| `noAsyncPromiseExecutor` | `error` | Interzice folosirea unei funcții async ca executor de Promise. |
| `noBiomeFirstException` | `error` | Previne folosirea pattern-ului `!` în prima poziție din `files.includes` în fișierul de configurare. |
| `noBitwiseOperators` | `error` | Interzice operatorii bitwise. |
| `noCatchAssign` | `error` | Interzice reatribuirea excepțiilor în clauzele catch. |
| `noClassAssign` | `error` | Interzice reatribuirea membrilor clasei. |
| `noCommentText` | `error` | Previne inserarea comentariilor ca noduri de text. |
| `noCompareNegZero` | `error` | Interzice compararea cu `-0`. |
| `noConfusingLabels` | `error` | Interzice declarațiile label care nu sunt loop-uri. |
| `noConfusingVoidType` | `error` | Interzice tipul void în afara generice sau tipurilor de return. |
| `noConsole` | `off` | Interzice utilizarea `console`. |
| `noConstEnum` | `error` | Interzice enum-urile const TypeScript. |
| `noConstantBinaryExpressions` | `error` | Interzice expresiile unde operația nu afectează valoarea. |
| `noControlCharactersInRegex` | `error` | Previne caracterele de control și anumite secvențe de escape care corespund caracterelor de control în literalii regex. |
| `noDebugger` | `error` | Interzice utilizarea `debugger`. |
| `noDocumentCookie` | `error` | Interzice atribuiri directe la `document.cookie`. |
| `noDoubleEquals` | `error` | Cere utilizarea `===` și `!==`. |
| `noDuplicateAtImportRules` | `error` | Interzice regulile duplicate `@import` (CSS). |
| `noDuplicateCase` | `error` | Interzice etichetele duplicate de case. |
| `noDuplicateClassMembers` | `error` | Interzice membrii de clasă duplicați. |
| `noDuplicateCustomProperties` | `error` | Interzice proprietățile custom duplicate în blocuri de declarație (CSS). |
| `noDuplicateElseIf` | `error` | Interzice condițiile duplicate în lanțurile if-else-if. |
| `noDuplicateFields` | `error` | Interzice câmpurile duplicate în operațiuni GraphQL. |
| `noDuplicateFontNames` | `error` | Interzice numele duplicate în cadrul familiilor de fonturi (CSS). |
| `noDuplicateObjectKeys` | `error` | Interzice două chei cu același nume în interiorul obiectelor. |
| `noDuplicateParameters` | `error` | Interzice numele duplicate pentru parametrii funcției. |
| `noDuplicateProperties` | `error` | Interzice proprietățile duplicate în blocuri de declarație (CSS). |
| `noDuplicateSelectorsKeyframeBlock` | `error` | Interzice selectorii duplicați în blocurile keyframe (CSS). |
| `noDuplicateTestHooks` | `error` | Un bloc describe nu ar trebui să conțină hook-uri duplicate. |
| `noEmptyBlock` | `error` | Interzice blocurile CSS goale (CSS). |
| `noEmptyBlockStatements` | `error` | Interzice blocurile de cod goale și blocurile statice. |
| `noEmptyInterface` | `error` | Interzice declararea interfețelor goale. |
| `noEvolvingTypes` | `error` | Interzice variabilele care evoluează către tipul any prin reatribuiri. |
| `noExplicitAny` | `error` | Interzice utilizarea tipului any. |
| `noExportsInTest` | `error` | Interzice folosirea export sau module.exports în fișiere ce conțin teste. |
| `noExtraNonNullAssertion` | `error` | Previne utilizarea greșită a operatorului de non-null assertion `!` în fișiere TypeScript. |
| `noFallthroughSwitchClause` | `error` | Interzice căderea prin clauzele switch. |
| `noFocusedTests` | `error` | Interzice testele focusate. |
| `noFunctionAssign` | `error` | Interzice reatribuirea declarațiilor de funcții. |
| `noGlobalAssign` | `error` | Interzice atribuțiile către obiecte native și variabile globale read-only. |
| `noGlobalIsFinite` | `error` | Folosește `Number.isFinite` în locul globalului `isFinite`. |
| `noGlobalIsNan` | `error` | Folosește `Number.isNaN` în locul globalului `isNaN`. |
| `noImplicitAnyLet` | `error` | Interzice utilizarea tipului implicit any la declarațiile de variabile. |
| `noImportAssign` | `error` | Interzice atribuirea la binding-urile importate. |
| `noImportantInKeyframe` | `error` | Interzice `!important` invalid în declarațiile keyframe (CSS). |
| `noIrregularWhitespace` | `error` | Interzice utilizarea caracterelor de spațiu neregulate. |
| `noLabelVar` | `error` | Interzice label-urile care au același nume cu o variabilă. |
| `noMisleadingCharacterClass` | `error` | Interzice caracterele create din multiple code point-uri în sintaxa clasei de caractere. |
| `noMisleadingInstantiator` | `error` | Impune utilizarea corectă a lui `new` și `constructor`. |
| `noMisplacedAssertion` | `error` | Verifică că funcția de aserțiune, de ex. expect, este plasată în interiorul unui apel `it()`. |
| `noMisrefactoredShorthandAssign` | `error` | Interzice assign-urile shorthand când variabila apare pe ambele părți. |
| `noOctalEscape` | `error` | Interzice secvențele de escape octale în literalii string. |
| `noPrototypeBuiltins` | `error` | Interzice utilizarea directă a builtin-urilor din `Object.prototype`. |
| `noQuickfixBiome` | `error` | Interzice utilizarea `quickfix.biome` în fișierul de setări al editorului. |
| `noRedeclare` | `error` | Interzice redeclarațiile de variabile, funcții, clase și tipuri în același scope. |
| `noRedundantUseStrict` | `error` | Previne existența lui `use strict` redundant. |
| `noSelfCompare` | `error` | Interzice comparațiile unde ambele părți sunt exact identice. |
| `noShadowRestrictedNames` | `error` | Interzice identifier-ele care ascund nume restricționate. |
| `noShorthandPropertyOverrides` | `error` | Interzice proprietățile shorthand care suprascriu proprietăți longhand conexe (CSS). |
| `noSkippedTests` | `error` | Interzice testele dezactivate. |
| `noSparseArray` | `error` | Previne utilizarea array-urilor sparse (array-uri cu goluri). |
| `noTemplateCurlyInString` | `error` | Interzice sintaxa placeholder a template literal-urilor în string-uri normale. |
| `noThenProperty` | `error` | Interzice proprietatea then. |
| `noTsIgnore` | `error` | Previne utilizarea directivei TypeScript `@ts-ignore`. |
| `noUnassignedVariables` | `error` | Interzice variabilele declarate cu let sau var care sunt citite dar niciodată atribuite. |
| `noUnknownAtRules` | `error` | Interzice at-rule-urile necunoscute (CSS). |
| `noUnsafeDeclarationMerging` | `error` | Interzice fuziuni periculoase de declarații între interfețe și clase. |
| `noUnsafeNegation` | `error` | Interzice folosirea negației nesigure (`!`). |
| `noUselessEscapeInString` | `error` | Interzice escape-urile inutile în literalii string. |
| `noUselessRegexBackrefs` | `error` | Interzice backreference-urile regex inutile care se potrivesc întotdeauna cu un string gol. |
| `noVar` | `error` | Interzice utilizarea `var`. |
| `noWith` | `error` | Interzice instrucțiunile `with` în contexte non-stricte. |
| `useAdjacentOverloadSignatures` | `error` | Interzice semnăturile overload care nu sunt alăturate. |
| `useAwait` | `error` | Asigură că funcțiile async utilizează `await`. |
| `useBiomeIgnoreFolder` | `error` | Promovează utilizarea corectă pentru ignorarea folderelor în fișierul de configurare. |
| `useDefaultSwitchClauseLast` | `error` | Impune ca clauzele default în switch să fie ultimele. |
| `useErrorMessage` | `error` | Impune transmiterea unui mesaj atunci când se creează o eroare builtin. |
| `useGetterReturn` | `error` | Impune ca metodele get să returneze întotdeauna o valoare. |
| `useGoogleFontDisplay` | `error` | Impune utilizarea unei strategii recomandate display pentru Google Fonts. |
| `useGuardForIn` | `error` | Cere ca buclele for-in să includă o instrucțiune `if`. |
| `useIsArray` | `error` | Folosește `Array.isArray()` în locul `instanceof Array`. |
| `useIterableCallbackReturn` | `error` | Impune valori de return consistente în callback-urile iterable. |
| `useNamespaceKeyword` | `error` | Cere utilizarea cuvântului cheie namespace în locul `module` pentru a declara namespace-uri TypeScript. |
| `useNumberToFixedDigitsArgument` | `error` | Impune utilizarea argumentului digits cu `Number#toFixed()`. |
| `useStaticResponseMethods` | `error` | Folosește metode statice `Response` în locul constructorului `new Response()` când este posibil. |
| `useStrictMode` | `error` | Impune utilizarea directivei `use strict` în fișierele script. |

## Note

Anumite reguli sunt dezactivate deoarece rulează prea lent cu Scanner-ul. După cum este menționat în [Biome docs](https://biomejs.dev/guides/investigate-slowness/#first-things-first), regulile proiectului activate sunt cunoscute pentru că pot cauza cost de performanță în schimbul unei analize mai avansate.

În testările noastre, am constatat că aceste reguli pot face diferența între 300ms și 13s de lint.